package com.kakame.codenews.base.web.fast.mapping.common;

import java.io.Serializable;
import java.util.Date;

import com.kakame.codenews.base.web.annotation.TableMapping;
import com.kakame.codenews.base.web.annotation.ColumnMapping;

/**
 * 
 * @author 何家明  2018年08月02日 13:21:15
 */
@TableMapping("t_common_menu")
public class Menu implements Serializable {

    private static final long serialVersionUID = 1L;

    @ColumnMapping(column = "id")
    private String id;

    @ColumnMapping(column = "menu_code")
    private String menuCode;

    @ColumnMapping(column = "menu_name")
    private String menuName;

    @ColumnMapping(column = "menu_desc")
    private String menuDesc;

    @ColumnMapping(column = "menu_icon")
    private String menuIcon;

    @ColumnMapping(column = "menu_href")
    private String menuHref;

    @ColumnMapping(column = "menu_parent_code")
    private String menuParentCode;

    @ColumnMapping(column = "menu_type")
    private String menuType;

    @ColumnMapping(column = "menu_order")
    private Integer menuOrder;

    @ColumnMapping(column = "status")
    private String status;

    @ColumnMapping(column = "create_time")
    private Date createTime;

    @ColumnMapping(column = "create_user_id")
    private String createUserId;

    @ColumnMapping(column = "update_time")
    private Date updateTime;

    @ColumnMapping(column = "update_user_id")
    private String updateUserId;


    public Menu() {
    }
    public Menu(Builder builder) {
        this.id = builder.id;
        this.menuCode = builder.menuCode;
        this.menuName = builder.menuName;
        this.menuDesc = builder.menuDesc;
        this.menuIcon = builder.menuIcon;
        this.menuHref = builder.menuHref;
        this.menuParentCode = builder.menuParentCode;
        this.menuType = builder.menuType;
        this.menuOrder = builder.menuOrder;
        this.status = builder.status;
        this.createTime = builder.createTime;
        this.createUserId = builder.createUserId;
        this.updateTime = builder.updateTime;
        this.updateUserId = builder.updateUserId;
    }
	public static Builder create() {
		return new Builder();
	}

	/**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getId() {
		return id;
	}
    /**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param id
	 */
    public void setId(String id) {
		this.id = id;
	}
	/**
	 * 菜单编码
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuCode() {
		return menuCode;
	}
    /**
	 * 菜单编码
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuCode
	 */
    public void setMenuCode(String menuCode) {
		this.menuCode = menuCode;
	}
	/**
	 * 菜单名
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuName() {
		return menuName;
	}
    /**
	 * 菜单名
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuName
	 */
    public void setMenuName(String menuName) {
		this.menuName = menuName;
	}
	/**
	 * 菜单描述
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuDesc() {
		return menuDesc;
	}
    /**
	 * 菜单描述
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuDesc
	 */
    public void setMenuDesc(String menuDesc) {
		this.menuDesc = menuDesc;
	}
	/**
	 * 菜单样式
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuIcon() {
		return menuIcon;
	}
    /**
	 * 菜单样式
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuIcon
	 */
    public void setMenuIcon(String menuIcon) {
		this.menuIcon = menuIcon;
	}
	/**
	 * 菜单链接
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuHref() {
		return menuHref;
	}
    /**
	 * 菜单链接
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuHref
	 */
    public void setMenuHref(String menuHref) {
		this.menuHref = menuHref;
	}
	/**
	 * 菜单父级编码
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuParentCode() {
		return menuParentCode;
	}
    /**
	 * 菜单父级编码
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuParentCode
	 */
    public void setMenuParentCode(String menuParentCode) {
		this.menuParentCode = menuParentCode;
	}
	/**
	 * 菜单类型（COMMON_MENU_TYPE）
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getMenuType() {
		return menuType;
	}
    /**
	 * 菜单类型（COMMON_MENU_TYPE）
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuType
	 */
    public void setMenuType(String menuType) {
		this.menuType = menuType;
	}
	/**
	 * 菜单顺序
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public Integer getMenuOrder() {
		return menuOrder;
	}
    /**
	 * 菜单顺序
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param menuOrder
	 */
    public void setMenuOrder(Integer menuOrder) {
		this.menuOrder = menuOrder;
	}
	/**
	 * 状态  C 正常 D 删除
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getStatus() {
		return status;
	}
    /**
	 * 状态  C 正常 D 删除
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param status
	 */
    public void setStatus(String status) {
		this.status = status;
	}
	/**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public Date getCreateTime() {
		return createTime;
	}
    /**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param createTime
	 */
    public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getCreateUserId() {
		return createUserId;
	}
    /**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param createUserId
	 */
    public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}
	/**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public Date getUpdateTime() {
		return updateTime;
	}
    /**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param updateTime
	 */
    public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	/**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getUpdateUserId() {
		return updateUserId;
	}
    /**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param updateUserId
	 */
    public void setUpdateUserId(String updateUserId) {
		this.updateUserId = updateUserId;
	}

    @Override
	public String toString() {
		return "Menu [id=" + id + ", menuCode=" + menuCode + ", menuName=" + menuName + ", menuDesc=" + menuDesc + ", menuIcon=" + menuIcon + ", menuHref=" + menuHref + ", menuParentCode=" + menuParentCode + ", menuType=" + menuType + ", menuOrder=" + menuOrder + ", status=" + status + ", createTime=" + createTime + ", createUserId=" + createUserId + ", updateTime=" + updateTime + ", updateUserId=" + updateUserId + "]";
	}
    public static class Builder {
        private String id;
        private String menuCode;
        private String menuName;
        private String menuDesc;
        private String menuIcon;
        private String menuHref;
        private String menuParentCode;
        private String menuType;
        private Integer menuOrder;
        private String status;
        private Date createTime;
        private String createUserId;
        private Date updateTime;
        private String updateUserId;
        /**
	     * 
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param id
	     */
        public Builder id(String id) {
	    	this.id = id;
	        return this;
    	}
        /**
	     * 菜单编码
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuCode
	     */
        public Builder menuCode(String menuCode) {
	    	this.menuCode = menuCode;
	        return this;
    	}
        /**
	     * 菜单名
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuName
	     */
        public Builder menuName(String menuName) {
	    	this.menuName = menuName;
	        return this;
    	}
        /**
	     * 菜单描述
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuDesc
	     */
        public Builder menuDesc(String menuDesc) {
	    	this.menuDesc = menuDesc;
	        return this;
    	}
        /**
	     * 菜单样式
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuIcon
	     */
        public Builder menuIcon(String menuIcon) {
	    	this.menuIcon = menuIcon;
	        return this;
    	}
        /**
	     * 菜单链接
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuHref
	     */
        public Builder menuHref(String menuHref) {
	    	this.menuHref = menuHref;
	        return this;
    	}
        /**
	     * 菜单父级编码
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuParentCode
	     */
        public Builder menuParentCode(String menuParentCode) {
	    	this.menuParentCode = menuParentCode;
	        return this;
    	}
        /**
	     * 菜单类型（COMMON_MENU_TYPE）
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuType
	     */
        public Builder menuType(String menuType) {
	    	this.menuType = menuType;
	        return this;
    	}
        /**
	     * 菜单顺序
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param menuOrder
	     */
        public Builder menuOrder(Integer menuOrder) {
	    	this.menuOrder = menuOrder;
	        return this;
    	}
        /**
	     * 状态  C 正常 D 删除
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param status
	     */
        public Builder status(String status) {
	    	this.status = status;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param createTime
	     */
        public Builder createTime(Date createTime) {
	    	this.createTime = createTime;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param createUserId
	     */
        public Builder createUserId(String createUserId) {
	    	this.createUserId = createUserId;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param updateTime
	     */
        public Builder updateTime(Date updateTime) {
	    	this.updateTime = updateTime;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param updateUserId
	     */
        public Builder updateUserId(String updateUserId) {
	    	this.updateUserId = updateUserId;
	        return this;
    	}

        public Menu build() {
			return new Menu(this);
		}
	}






    // ******************* 扩展 *******************//


}
